home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / OTHER_LA / 0289.ZIP / UTILSDOC.PRT < prev    next >
Text File  |  1986-12-12  |  59KB  |  999 lines

  1.  
  2.                                                                                           page 1
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                     
  10.                     1.  ASMSTAT
  11.                     
  12.                         This utility program compiles some interesting statistics about assembly
  13.                         language programs.  It reads in assembly language programs (formatted
  14.                         according to the rules for Microsoft's MS/DOS assembler, although it
  15.                         would probably work with most compatible-format assembly languages) and
  16.                         produces statistics indicating the ratio of comment keystrokes to program
  17.                         keystrokes, and many other interesting statistics.  It is surprising
  18.                         to see how closely an individual programmer's statistics end up being,
  19.                         even in quite different programs.  This program can also be used to
  20.                         "screen" a series of programs, to see which might need be checked for
  21.                         adequate commenting.  The program is invoked with a command line of
  22.                         the form:
  23.                     
  24.                         snorun asmstat <<inputfilespec>
  25.                     
  26.                         Note that the first of the left-pointy-brackets above is used in the
  27.                         actual command line to redirect the input to the program from the file
  28.                         indicated by <inputfilespec>.  Alternatively, this first "<" character
  29.                         may be replaced by "/5:" or "/5=".  (These are generally the three ways
  30.                         to redirect the input file to any program based on SNORUN).
  31.                     
  32.                           Example command lines would look like:
  33.                     
  34.                             snorun asmstat <c:\asm\prog1.asm
  35.                             snorun asmstat <myprog.asm
  36.                     
  37.  
  38.                                                                                           page 2
  39.  
  40.  
  41.                     
  42.                     2.  DIFFER
  43.                     
  44.                         This utility program compares two text files and indicates how many areas
  45.                         in the file have been changed.  A report is produced to compare the
  46.                         changed areas.
  47.                           The program is basically the work of P.R. Tallett, Datacall Ltd,
  48.                         Kirkstall Rd., Leeds, England.  It has been elaborated somewhat by A. P.
  49.                         McCann.  Inclusion of line numbers and slight rework for the IBM PC
  50.                         version has been done by David Shields and Robert Dewar.  Several bugs
  51.                         in command line scanning and end-of-file handling have been corrected
  52.                         by Gordon Peterson II.
  53.                           The program is invoked by a command line of the form:
  54.                     
  55.                         differ <file1> <file2> <outfile> [<options>]
  56.                     
  57.                           The first two file specs define the two input files to be compared,
  58.                         and these two must be present.  The third file spec, if present,
  59.                         defines where the output file is to go.  This can be either a disk file
  60.                         or a device (such as CON, PRN, or LPTn).  If no output file is specified,
  61.                         the console is assumed.  (Note that if the /W format is being routed to
  62.                         the console, it is much more readable if /W39 is specified).
  63.                     
  64.                         <options>::
  65.                            /M
  66.                               This option forces blank lines to match in compared files.  The
  67.                               default is that blank lines are ignored during the matching
  68.                               process.
  69.                     
  70.                            /L[n][+]
  71.                               This option specifies that "n" lines must be found identical before
  72.                               the program can assume the files are again in parallel.  The
  73.                               default is 3.  If the + is found, then the listing includes the
  74.                               n lines which were the same.  The default is that only the first
  75.                               such line matching gets included in the listing.
  76.                     
  77.                            /Rc
  78.                               Normally, any character found in either input file less than 20H
  79.                               is replaced by a "?" character in the output report.  If this
  80.                               option is specified, the character specified as "c" specifies an
  81.                               alternate replacement character to use instead.
  82.                     
  83.  
  84.                                                                                           page 3
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.                            /X
  93.                               This option prevents the replacement of characters less than 20H
  94.                               in the output report.  (They are retained and output as found in
  95.                               the input files).
  96.                     
  97.                            /W[n][-]
  98.                               This option specifies that a double column listing format is to be
  99.                               used.  Use of this option is recommended.  The first "n" characters
  100.                               of each line (one from file1, one from file2) are printed side by
  101.                               side, making the comparison easier.  The total line length is 2n + 2
  102.                               including the separator characters.  Default is 65.  The "-" sign,
  103.                               if present, reduces the length of the line of asterisks separating
  104.                               the blocks of different code.  The "-" option, which might be useful
  105.                               on slow printers, is not really recommended.
  106.                     
  107.                            Example:
  108.                               To compare "OLDVER.TXT" with "NEWVER.TXT" and print a file of the
  109.                               changes, the suggested command line would be:
  110.                     
  111.                               differ oldver.txt newver.txt prn /W
  112.                     
  113.  
  114.                                                                                           page 4
  115.  
  116.  
  117.  
  118.                     
  119.                     3.  DIRCMP2
  120.                     
  121.                         This utility program allows comparing the files within specified
  122.                         directories.  The directories may be on the same or different disk
  123.                         volumes, and may also be network volumes running within, for example,
  124.                         PC network.  The program is invoked with a command line of the form:
  125.                     
  126.                         snorun dircmp2 ;CMDFILE=<cmdfile>[,BATFILE=<outputfile>]
  127.                     
  128.                         The CMDFILE contains entries of the form:
  129.                     
  130.                         MATCH  C:\,D:\
  131.                         MATCH  D:\ASM\SRCPROG,F:\ASM\SRCPROG
  132.                         MATCH  D:\PROG,D:\PROG\BACKUP
  133.                     
  134.                         Each of these entries define a pair of subdirectories (and the drives on
  135.                         which they are located) which are to be compared.  There are three
  136.                         output streams from the program:
  137.                     
  138.                         Display output (written to SCREEN) includes progress messages which
  139.                         are displayed on the screen as each new directory is read from the
  140.                         specified drive.
  141.                     
  142.                         Standard output (written to OUTPUT) includes an echo of each entered
  143.                         command received.  This is followed by a listing of all files in the
  144.                         two subdirectories which are of different age or size, as well as those
  145.                         which are missing from one or the other of the directories.  Note that
  146.                         the program will not process MATCH commands where one or the other of
  147.                         the two subdirectories is missing or contains no files (and lower-
  148.                         level subdirectories do not count as a file for the purpose of this
  149.                         test!)  This stream is normally redirected to either the printer or an
  150.                         output file for subsequent analysis.
  151.                     
  152.                         Batch output (written if the BATFILE= option is specified) consists of
  153.                         a batch file which includes COPY commands which update older versions
  154.                         of files from the newer versions, and copies over files which previously
  155.                         were missing from one or the other of the corresponding subdirectories.
  156.                     
  157.  
  158.                                                                                           page 5
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.                         DIRCMP2 is a very useful tool for maintaining, for example, a series of
  171.                         subdirectories which include files being maintained by separate
  172.                         programmers.  It also is very useful if a programmer is maintaining
  173.                         a file server subdirectory, but updates his own personal copy on his
  174.                         own machine and then periodically wants to update the later versions
  175.                         to the generally-available copies on the file server.
  176.                     
  177.  
  178.                                                                                           page 6
  179.  
  180.  
  181.  
  182.                     
  183.                     4.  DIRTREE
  184.                     
  185.                         This utility program allows listing subdirectory information on either
  186.                         an entire volume or within any specified subdirectory of a volume.  All
  187.                         options may be entered in either upper or lower case.  The output file
  188.                         may be redirected in the same way one would redirect any other output
  189.                         file produced via SNORUN.
  190.                     
  191.                         snorun dirtree [<iooptions>][;<options>]
  192.                     
  193.                         <iooptions>::
  194.                            /6=<outputspec>
  195.                               This option allows putting the output of DIRTREE to a disk file
  196.                               or to the printer.  Either the equal sign (as shown) or a colon
  197.                               are equally valid delimiters for this option.  Example command
  198.                               lines are:
  199.                                     snorun dirtree /6=lpt1: ;path=c:
  200.                                     snorun dirtree /6=c:\prt\mydirs.prt ;path=d:
  201.                     
  202.                            ><outputspec>
  203.                               The output of DIRTREE may also be routed to a disk file or a
  204.                               device by simple redirection.  Example command lines are:
  205.                                     snorun dirtree >mydirs.prt ;path=d: list
  206.                     
  207.                            >><outputspec>
  208.                               The output of DIRTREE may be appended to a disk file.  To create
  209.                               a disk file containing the listings of all valid paths for hard
  210.                               drives C: and D:, the command lines might be:
  211.                                     snorun dirtree >mydirs.txt ;path=c: list
  212.                                     snorun dirtree >>mydirs.txt ;path=d: list
  213.                     
  214.                         <options>::
  215.                            path=<pathname>   or
  216.                            /p=<pathname>
  217.                               This option allows specification of the path name to be used for
  218.                               the subdirectory lookup.  Example pathnames are:
  219.                                     c:  a:ms*  d:ms?as*      etc.
  220.                               The default path name is "\".
  221.                     
  222.  
  223.                                                                                           page 7
  224.  
  225.  
  226.  
  227.                            /dpo
  228.                               This option causes no subdirectory scanning, but merely displays
  229.                               the effective path name that would be used for the lookup.
  230.                     
  231.                            list             or
  232.                            /l
  233.                               This option causes all subdirectories to be written to the output
  234.                               file.  They are output as FULL PATH NAMES, in sorted, interleaved
  235.                               sequence.
  236.                     
  237.                            indent           or
  238.                            /i
  239.                               This option causes all subdirectories to be written to the output
  240.                               file.  They are output as FULL PATH NAMES, in sorted, interleaved
  241.                               sequence, just as for the "list" form, except that nested
  242.                               subdirectories are indented.
  243.                     
  244.                            stair            or
  245.                            step             or
  246.                            /s
  247.                               This option causes all subdirectories to be written to the output
  248.                               file.  They are output, one subdirectory to a line (with higher
  249.                               levels of each path name suppressed), in sorted, interleaved
  250.                               sequence.  The left end of each nested subdirectory is lined up
  251.                               under the right hand end of the name of the containing (sub)-
  252.                               directory above.
  253.                     
  254.                            tree             or
  255.                            /t
  256.                               This option causes all subdirectories to be written to the output
  257.                               file in the style used by PCTOOLS, except in a continuous format
  258.                               (PCTOOLS displays them one screenful at a time, making it incon-
  259.                               venient to print them).
  260.                     
  261.                            nohdr            or
  262.                            /nh
  263.                               This option suppresses the heading from being written to the output
  264.                               file.  The heading contains the path name used, the date and time,
  265.                               and the volume name (unless suppressed).
  266.                     
  267.  
  268.                                                                                           page 8
  269.  
  270.  
  271.                            novol            or
  272.                            /nv
  273.                               This option suppresses the volume name from being accessed.  If
  274.                               not suppressed, the volume name is read and placed in the heading
  275.                               (which could also be suppressed).
  276.                     
  277.                     5.  LINEAN1
  278.                     
  279.                         This special-purpose program can be of help in analyzing communications
  280.                         line behavior.  If one is looking at asynchronous hexadecimal characters
  281.                         arriving on a communications line, it is sometimes useful to know how the
  282.                         bit stream is actually being sent on the line.  This allows one, for
  283.                         example, to look at the actual bit stream as it appears on the line and
  284.                         attempt to figure out why the data is not being received as expected.
  285.                           This program is generally not useful to persons without a fairly good
  286.                         low-level understanding of serial communications.  However, for such
  287.                         persons this program can save a great deal of mechanical bit fiddling!
  288.                           To use LINEAN1, the command line would look like:
  289.                     
  290.                         snorun linean1 >lpt1
  291.                     
  292.                         The program will prompt for the entry of strings of received hexadecimal
  293.                         bytes.  It assumes that the hex bytes received represent asynchronous,
  294.                         eight bit data with no parity bit, one start bit and one stop bit.  If
  295.                         you are entering a byte which was received with a framing error, follow
  296.                         the entry of its two hex digits with an "x".  For example, a typical line
  297.                         you might enter could look like:
  298.                     
  299.                         00,46x,3f,7ex,55x,02,42,47,5c
  300.                     
  301.                         You then have the option to enter a comment describing the conditions
  302.                         under which this data was observed, if you like.  If not, just press
  303.                         the Enter key.  This field, if entered, is simply printed as annotation
  304.                         on the output listing.
  305.                     
  306.                         The program will then compute the bit pattern that this would represent
  307.                         on the line and send it to the printer.  In the output, the line time
  308.                         (which may be a non-integral number of bit times on asynchronous serial
  309.                         transmission) is represented by a "." character.  (This period generally
  310.                         represents zero or more non-start-bits).  The hex character representing
  311.                         the bit pattern appears centered under its corresponding data bits.
  312.                     
  313.  
  314.                                                                                           page 9
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                         The program will also show the way the same data would appear on the
  328.                         line for eight-bit synchronous format as well.
  329.                     
  330.  
  331.                                                                                           page 10
  332.  
  333.  
  334.  
  335.                     
  336.                     6.  LIST
  337.                     
  338.                         This utility program allows listing a text file with a variety of
  339.                         options.
  340.                           Note that you may have LIST in either of two forms, the SNOBOL4+
  341.                         form (with the extension .SAV) or the SPITBOL form (with the extension
  342.                         .EXE).  The command lines are slightly different between the two forms:
  343.                         If you have LIST.SAV, use the "snorun" form of the command line;  if
  344.                         you have LIST.EXE, use the "list" form of the command line instead.
  345.                     
  346.                         snorun list ;<inputfile>[,<outputfile>][<options>]          OR:
  347.                         list <inputfilespec>[,<outputfile>][<options>]
  348.                     
  349.                         <outputfile>::
  350.                            This item specifies the name of a file to which output is to be
  351.                            written.  If no file name is specified, default is to output to
  352.                            PRN: (the printer).
  353.                     
  354.                         <options>::
  355.                            /f
  356.                               This option specifies that the file being listed is already in
  357.                               print file format.  No headings are added, and no numbering of
  358.                               lines is done.  The file is assumed to contain no tab characters.
  359.                     
  360.                            /n<integer>
  361.                               This option allows specifying how many input record lines are to
  362.                               be printed on each page.  The default is 55.
  363.                     
  364.                            /p
  365.                               This option causes a print file to be generated.  This file
  366.                               is formatted for being output to a printer, including page
  367.                               headings.  The extension defaults to ".LST" if none is specified.
  368.                     
  369.                            /q
  370.                               This option causes the output to be appended to the end of the
  371.                               output file, if it already exists.  If the output file is empty
  372.                               or does not already exist, this option has no effect.
  373.                     
  374.  
  375.                                                                                           page 11
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.                            /t<integer>
  387.                               This option causes any tab characters encountered to be expanded
  388.                               so that tabs occur every <integer> columns.  The default is to
  389.                               tab every eight columns.
  390.                     
  391.                            /x
  392.                               This option causes numbering of the lines to be suppressed.  The
  393.                               default is to number the input records.  The first record number
  394.                               is 1.
  395.                     
  396.  
  397.                                                                                           page 12
  398.  
  399.  
  400.                     
  401.                     7.  MAKDUMMY
  402.                     
  403.                         This utility program generates dummy files on a diskette with the same
  404.                         names as the corresponding files in a ".ARC" archive file.
  405.                           The public domain utility "ARC" is extremely useful for compressing
  406.                         a number of files down into a much smaller single file that can be stored
  407.                         (and transported) easily on a single diskette.  The only problem is that
  408.                         diskette cataloguing programs (such as the public domain DBS-KAT system)
  409.                         will then catalog the ".ARC" file but not the individual files therein.
  410.                         This means possibly hunting through a large number of diskettes, each
  411.                         having a big (and black) ".ARC" file on it, to find the ones that have
  412.                         copies of the file(s) you are looking for.
  413.                           What MAKDUMMY does is to create dummy files, usually on the same
  414.                         diskette as the ".ARC" file, of the same names as the files that are
  415.                         archived.  Each dummy file simply contains a text record which directs
  416.                         the reader's attention to the ".ARC" file, giving its name, in which
  417.                         the correspondingly-named file can be found.
  418.                           Assume that you are using MAKDUMMY to make dummy files for the archive
  419.                         file named "TEST.ARC" on diskette drive A.  You will need to have the
  420.                         SNORUN run-time package somewhere within your environment's PATH, of
  421.                         course.  You must also have the ARC utility (MAKDUMMY has been tested
  422.                         with ARC 5.12) likewise accessible.  You should be in the subdirectory
  423.                         where your archive file exists.  Unless the MAKDUMMY.SAV file is in that
  424.                         same place (which is unlikely), you will need to include a path name so
  425.                         that SNORUN can find it.  The command line to run MAKDUMMY, in general,
  426.                         would look like (you may use either upper or lower case as you wish):
  427.                     
  428.                         snorun c:makdummy;<arcfile>,<drivespec>             OR FOR EXAMPLE:
  429.                         snorun c:makdummy;myfiles,a:
  430.                     
  431.                         <arcfile>::
  432.                            This item specifies the name of the archive file which contains
  433.                            the members you want to create dummy files for.  This file must
  434.                            have the extension ".ARC".  You need not specify the extension on
  435.                            the command line (".ARC" is supplied by default).
  436.                     
  437.                         <drivespec>::
  438.                            This item specifies the drive spec on which the dummy files are to
  439.                            be created.  Note that the comma between <arcfile> and <drivespec>
  440.                            is optional.  You may in fact use a comma or any combination of ASCII
  441.                            blanks and tab characters.  However, the drive spec must be terminated
  442.                            with the colon as shown.
  443.                     
  444.  
  445.                                                                                           page 13
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.                     
  457.                     8.  MELIZA
  458.                     
  459.                         This is a version of the famous "ELIZA" psychoanalysis program, one of
  460.                         the earliest famous attempts at "artificial intelligence".  Although
  461.                         this program is relatively straightforward, if the subject is persistent
  462.                         for a while, and attempts to converse seriously, the program can
  463.                         occasionally produce some rather startling insights and is sometimes
  464.                         terribly funny.  (ELIZA is the happiest when you talk to her using
  465.                         complete sentences.)
  466.                     
  467.  
  468.                                                                                           page 14
  469.  
  470.  
  471.                     
  472.                     9.  MSCRIBE
  473.                     
  474.                         This utility program is similar to the Datapoint MSCRIBE program.  It
  475.                         reads in a simply formatted text file, and ends up producing a nicely
  476.                         formatted version of the documentation, according to a standard format.
  477.                         This is suitable for product specifications, user's guides, and such.
  478.                         MSCRIBE works in conjunction with the Borland program SUPERKEY and the
  479.                         word processing program WORDSTAR 2000+.  The output macro files are
  480.                         kept smaller than 8K bytes, by segmenting them into multiple files (the
  481.                         extension of the macro file name is incremented for additional macro
  482.                         files, which are automatically linked).  WORDSTAR 2000 should be con-
  483.                         figured to support document histories.  Also, before running the "key"
  484.                         command below, it is assumed that a format file (same name as the input
  485.                         file, but with extension .FRM) exists for the document body, and that
  486.                         the format file MSCRIBET.FRM exists (which is used for the title page
  487.                         and preface).  The final document is to be found in the resulting files
  488.                         with extensions .TIT, .TOC, and .BOD, which are then printed by WORDSTAR.
  489.                           Note that you may have MSCRIBE in either of two forms, the SNOBOL4+
  490.                         form (with the extension .SAV) or the SPITBOL form (with the extension
  491.                         .EXE).  The command lines are slightly different between the two forms:
  492.                         If you have MSCRIBE.SAV, use the "snorun" form of the command line;  if
  493.                         you have MSCRIBE.EXE, use the "mscribe" form of the command line instead.
  494.                     
  495.                         snorun mscribe /5:<inputfilespec> /6:<macrofilespec>        OR:
  496.                         mscribe /5:<inputfilespec> /6:<macrofilespec>
  497.                         key <macrofilespec> /ml
  498.                     
  499.                         The input file contains text with embedded formatting commands.  These
  500.                         commands are all beginning in column one of their record.  Within the
  501.                         input file, the following formatting commands are used:
  502.                     
  503.                             +m1 <projectname>
  504.                         This command furnishes the project name for the document.
  505.                     
  506.                             +m2 <title>
  507.                         This command furnishes the title of the document.
  508.                     
  509.                             +m3 <documenttype>
  510.                         This command furnishes the type of document ("User's Guide", "Prelimin-
  511.                         ary Specification", or the like).
  512.                     
  513.  
  514.                                                                                           page 15
  515.  
  516.  
  517.                             +m4 <date>
  518.                         This command supplies the version date of the document.
  519.                     
  520.                             +m5
  521.                         This command indicates that the following text (beginning with the next
  522.                         record) is the Preface for the document.
  523.                     
  524.                             +m6 <docdescription>
  525.                         This command indicates the end of the Preface and supplies the name for
  526.                         the Body file (this is keyed into the Document History kept by Wordstar
  527.                         for the main part of the document).  It also indicates where the Table
  528.                         of Contents is to be inserted.
  529.                     
  530.                             +m7 0.  <chapterheading>
  531.                         This command supplies the heading for each chapter.  The "0" is auto-
  532.                         matically replaced by MSCRIBE with the chapter number.
  533.                     
  534.                             +m8 0.0[[.0].0] <sectionheading>
  535.                         This command supplies the heading for each section, subsection, etc.
  536.                         The zeros are automatically replaced by MSCRIBE with the appropriate
  537.                         numbers for the given section, subsection, or sub-subsection.  Four
  538.                         levels of section numbers are presently supported (more could be
  539.                         supported on request, but Wordstar 2000+ only supports four levels in
  540.                         its table of contents, hence the restriction).  The number of zeros
  541.                         indicate the nesting level.
  542.                     
  543.                             +pp<n>  (e.g. +pp0, +pp1, etc.)
  544.                         This command causes the text following to be the start of a new para-
  545.                         graph.  You may start the new paragraph either on the following line or
  546.                         on the same line as the +pp<n>, as long as at least one space follows
  547.                         the command (and optional number).  New paragraphs are automatically
  548.                         assumed after any +m<n> heading command which is followed by text.
  549.                     
  550.                             +sl<n>  (e.g. +sl0, +sl1, etc.)
  551.                         This command causes the text following (beginning on the following line)
  552.                         to be the start of a new paragraph.  You may start the new paragraph
  553.                         either on the following line or on the same line as the +sl<n>, as long
  554.                         as at least one space follows the command (and optional number).  The
  555.                         only difference between this command and the +pp command is that using
  556.                         this command keeps the new paragraph from being indented.
  557.                     
  558.  
  559.                                                                                           page 16
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.                             +turnoff
  573.                         This causes text following it to be ignored, including any +m<n> commands
  574.                         that might be encountered, until a +turnon command is encountered.
  575.                     
  576.  
  577.                                                                                           page 17
  578.  
  579.  
  580.  
  581.                     
  582.                     10.  OVER
  583.                     
  584.                         This utility program is used to shift print files right by a specified
  585.                         number of columns.  It is useful, for example, to get a listing of
  586.                         a program documentation file which can be put into a binder without the
  587.                         leftmost characters of each line becoming buried in the binding.  If
  588.                         one or more nonprinting printer control characters are at the beginning
  589.                         of each record, they are kept at the beginning and the padding characters
  590.                         are inserted following those control characters.
  591.                     
  592.                         over  <inputfilespec> <outputfilespec> [/n<integer>]
  593.                     
  594.                         <inputfilespec>::
  595.                            file name and extension, with optional drive spec and/or path name,
  596.                            defining where the input is to come from.
  597.                     
  598.                         <outputfilespec>::
  599.                            file name and extension, with optional drive spec and/or path name,
  600.                            or device name, where the output file is to be placed.  It may also
  601.                            be written to a specified device.
  602.                     
  603.                         /n<integer>::
  604.                            This option specifies by how many columns the input file is to be
  605.                            shifted to the right.  The default is twenty columns.  The option
  606.                            letter "n" may be either upper or lower case.  Examples for this
  607.                            option would look like:
  608.                                     /N16
  609.                                     /n7
  610.                     
  611.                         Therefore, example command lines might be:
  612.                     
  613.                             over  file1  file1ovr  /n5
  614.                             over  a:docfile.txt  c:\docfiles\over\docfileo.txt
  615.                     
  616.                     11.  REPAGIN8
  617.                     
  618.                         This utility program repaginates documentation files and processes them
  619.                         to create more satisfactory printed copies.  Those who get a lot of
  620.  
  621.                                                                                           page 18
  622.  
  623.  
  624.  
  625.                         public domain software, for example, often get documentation files which
  626.                         are simple, 80-column wide text files.  Sometimes these files have been
  627.                         paginated in their past, but subsequent revisions may have resulted in
  628.                         all pagination having been lost.  Often, the original, numbered chapter
  629.                         and section headings remain, and even an outdated index and/or table of
  630.                         contents.
  631.                           When such files are printed, there is also often not enough space to
  632.                         the left of column one to permit binding or punching of the printout
  633.                         without punching through the leftmost columns of text, or burying the
  634.                         leftmost columns into the deep crevasses of the binding.  This problem
  635.                         is made especially acute when the files are printed in condensed print
  636.                         mode.
  637.                           The REPAGIN8 utility repaginates such text files, restoring them to
  638.                         a goodlooking format, suitable for punching or binding.  It eliminates
  639.                         existing page eject control characters, adds page headings with optional
  640.                         page numbers, and shifts the text some specified number of columns to the
  641.                         right to leave space for binding.  Rather than just printing so-many
  642.                         lines per page (although a nominal value can be specified), the program
  643.                         attempts to "intelligently" paginate the file.  It looks for chapter
  644.                         and section headings, and paginates appropriately:  chapters always
  645.                         start on a new page, and section headings are bumped to the following
  646.                         page if they are close to the end of the previous one.  REPAGIN8 also
  647.                         takes into account widow/orphan control, attempting to keep paragraphs
  648.                         together when it seems practical and reasonable to do so.  It also
  649.                         partially centers "short" pages vertically, so that a page with just a
  650.                         few lines on it will not hug the top of the page quite so tightly.
  651.                           REPAGIN8, if it finds numbered chapter and section headings, will
  652.                         automatically generate a new table of contents, which it will print at
  653.                         the end of the document.  Paginated like the rest of the document, the
  654.                         table of contents pages are numbered (if page numbering is in effect)
  655.                         using the standard, lower-case roman numerals, beginning with "i".
  656.                         Typically, this new table of contents will be removed after printing
  657.                         and moved to the front of the document.
  658.                           If you like, REPAGIN8 also offers an option to renumber the chapter
  659.                         and section headings.  This is especially useful if you have combined
  660.                         several documentation files, or rearranged their sections.  In this
  661.                         case, chapter and section heading numbers will be used only to indicate
  662.                         the appropriate level.  If renumbering is in effect, all chapter headings
  663.                         will be forced to upper case.
  664.  
  665.                                                                                           page 19
  666.  
  667.  
  668.  
  669.                           In the REPAGIN8 command line, note that any items may be specified
  670.                         in either upper or lower case.  The separator between option values and
  671.                         the corresponding numbers (if any) may be either ":", "=", or omitted
  672.                         altogether if you prefer.  Options may be separated by spaces or commas
  673.                         or whatever, if you prefer, but do not require separators.  (However,
  674.                         don't forget the ";"!)  The command line to REPAGIN8 looks like:
  675.                     
  676.                         snorun repagin8 [<iooptions>][;<options>]
  677.                     
  678.                         <iooptions>::
  679.                            <<inputfile>      or
  680.                            /5=<inputfile>    or
  681.                            /5:<inputfile>
  682.                               This item allows specification of a file (or device) from which
  683.                               the input file is to be read.
  684.                     
  685.                            ><outputfile>     or
  686.                            >><outputfile>    or
  687.                            /6=<outputfile>   or
  688.                            /6:<outputfile>
  689.                               This item allows specification of a file (or device) to which
  690.                               the output file is to be written.  This can be either a printer
  691.                               or a disk file, or in general any MS/DOS sequential output device.
  692.                               Note that the ">>" form appends the output to the end of the
  693.                               existing contents of the specified file, if any.
  694.                     
  695.                         <options>::
  696.                            /h:<nn>           or
  697.                            /h=<nn>           or
  698.                            /h<nn>
  699.                               This option allows specifying the number of lines of header to
  700.                               be placed at the top of each page (minimum is one) before the
  701.                               first line of text is printed.  (Note that the header will often
  702.                               be larger than specified based on a variety of factors designed
  703.                               to put the text on the page in a more pleasing way.)  The default
  704.                               for this value, if not explicitly specified, is currently three.
  705.                     
  706.                            /l:<nn>           or
  707.                            /l=<nn>           or
  708.  
  709.                                                                                           page 20
  710.  
  711.  
  712.  
  713.  
  714.  
  715.                            /l<nn>
  716.                               This option allows specification of the nominal number of lines
  717.                               to print on the body of the page (note that this is NOT the same
  718.                               as the number of print lines per page, normally 66).  This is the
  719.                               approximate number of lines to print per page, following the header
  720.                               and before however many blank lines may appear at the bottom of
  721.                               each page.  An example value might be "/L50".  The default for this
  722.                               value, if not explicitly specified, is currently 55.
  723.                     
  724.                            /n
  725.                               This option specifies that REPAGIN8 is to add page numbers at the
  726.                               top of each page.  The new table of contents, if generated, will
  727.                               be numbered using lower case roman numerals.  The page numbers
  728.                               are approximately vertically centered within the specified header.
  729.                     
  730.                            /o:<nn>           or
  731.                            /o=<nn>           or
  732.                            /o<nn>            or
  733.                            /o
  734.                               This option specifies that the file is to be printed further over
  735.                               on the printed page than it would otherwise.  If the option does
  736.                               not appear at all, then the file is not shifted over at all.  If
  737.                               the option is given without a value, then the default value
  738.                               (twenty columns) is used.  If a numeric value is specified, then
  739.                               the input file is shifted to the right by that number of columns.
  740.                     
  741.                            /r
  742.                               This option specifies that chapter and section headings are to be
  743.                               renumbered.  The existing numbers are used to indicate the level
  744.                               only.  Chapter headings are forced to upper case if this option is
  745.                               in effect.
  746.                     
  747.  
  748.                                                                                           page 21
  749.  
  750.  
  751.                     
  752.                     12.  SPACE
  753.                     
  754.                         This utility program is an enhanced version of DIRTREE (shown above).
  755.                         Like DIRTREE, it allows listing subdirectory information on either
  756.                         an entire volume or within any specified subdirectory of a volume.
  757.                         However, SPACE optionally displays the number of files and sectors
  758.                         contained within each subdirectory, broken down by file extension within
  759.                         that subdirectory, and for the entire volume (or highest level path
  760.                         as specified on the command line).  (Note that, throughout the options
  761.                         descriptions that follow, ":" and "=" are both equally acceptable
  762.                         between an option keyword and its specified value.)  Also, all options
  763.                         may be entered in either upper or lower case.
  764.                     
  765.                         snorun space [<iooptions>][;<options>]
  766.                     
  767.                         <iooptions>::
  768.                            ><outputfile>     or
  769.                            >><outputfile>    or
  770.                            /6=<outputfile>   or
  771.                            /6:<outputfile>
  772.                               This option allows specification of a file (or device) to which
  773.                               the output file is to be written.  This can be either a printer
  774.                               or a disk file, or in general any MS/DOS sequential output device.
  775.                               Note that the ">>" form appends the output to the end of the
  776.                               existing contents of the specified file, if any.
  777.                     
  778.                         <options>::
  779.                            path=<pathname>   or
  780.                            /p=<pathname>
  781.                               This option allows specification of the path name to be used for
  782.                               the subdirectory lookup.  Example pathnames are:
  783.                                     c:  a:ms*  d:ms?as*      etc.
  784.                               The default path name is "\".
  785.                     
  786.                            alloc            or
  787.                            /a
  788.                               This option causes the output of space utilization reports which
  789.                               are sorted in descending order by amount of space used for files
  790.                               of each given extension.
  791.                     
  792.  
  793.                                                                                           page 22
  794.  
  795.  
  796.  
  797.                            /dpo
  798.                               This option causes no subdirectory scanning, but merely displays
  799.                               the effective path name that would be used for the lookup.
  800.                     
  801.                            dup              or
  802.                            /d
  803.                               This option causes an analysis and report of possible duplicate
  804.                               files.  A report is generated of all files of the exact same
  805.                               length and generation time for the specified path(s).  Although
  806.                               the data in the files is not actually checked, use of this option
  807.                               will generally turn up several files which are needlessly wasting
  808.                               space on your hard disk by existing in several places at the same
  809.                               time.  Note that it is not necessary that the file name or
  810.                               extensions be the same for them to turn up on this report.
  811.                     
  812.                            ext              or
  813.                            /x
  814.                               This option causes the output of space utilization reports which
  815.                               are sorted in alphabetic order of file extension.  This option
  816.                               takes precedence over the "alloc" and "/a" options, should both
  817.                               be specified.
  818.                     
  819.                            list             or
  820.                            /l
  821.                               This option causes all subdirectories to be written to the output
  822.                               file.  They are output as FULL PATH NAMES, in sorted, interleaved
  823.                               sequence.
  824.                     
  825.                            indent           or
  826.                            /i
  827.                               This option causes all subdirectories to be written to the output
  828.                               file.  They are output as FULL PATH NAMES, in sorted, interleaved
  829.                               sequence, just as for the "list" form, except that nested
  830.                               subdirectories are indented.
  831.                     
  832.                            stair            or
  833.                            step             or
  834.                            /s
  835.                               This option causes all subdirectories to be written to the output
  836.  
  837.                                                                                           page 23
  838.  
  839.  
  840.  
  841.                               file.  They are output, one subdirectory to a line (with higher
  842.                               levels of each path name suppressed), in sorted, interleaved
  843.                               sequence.  The left end of each nested subdirectory is lined up
  844.                               under the right hand end of the name of the containing (sub)-
  845.                               directory above.
  846.                     
  847.                            tree             or
  848.                            /t
  849.                               This option causes all subdirectories to be written to the output
  850.                               file in the style used by PCTOOLS, except in a continuous format
  851.                               (PCTOOLS displays them one screenful at a time, making it incon-
  852.                               venient to print them).
  853.                     
  854.                            util             or
  855.                            /u
  856.                               This option causes the output of space utilization reports.  These
  857.                               reports break down the number of files and number of bytes
  858.                               allocated per file extension, per subdirectory.  If more than one
  859.                               space utilization report is produced, a summary report is also
  860.                               provided at the end which consolidates all of the previously
  861.                               produced space utilization reports.  Note that the number of bytes
  862.                               allocated as shown in these reports does not include the additional
  863.                               unused bytes normally found at the end of each file.  The default
  864.                               ordering of these reports is in alphabetic order by file extension.
  865.                     
  866.                            width=<integer>  or
  867.                            /w=<integer>
  868.                               This option sets the width of the output lines to the indicated
  869.                               maximum width.  The default maximum width is 80.  If the usage
  870.                               option is in effect, setting the maximum width to 132 (or some
  871.                               value bigger than 80) may result in more columns being able to
  872.                               fit per output line.
  873.                     
  874.                            nohdr            or
  875.                            /nh
  876.                               This option suppresses the heading from being written to the output
  877.                               file.  The heading contains the path name used, the date and time,
  878.                               and the volume name (unless suppressed).
  879.                     
  880.  
  881.                                                                                           page 24
  882.  
  883.  
  884.  
  885.  
  886.  
  887.                            novol            or
  888.                            /nv
  889.                               This option suppresses the volume name from being accessed.  If
  890.                               not suppressed, the volume name is read and placed in the heading
  891.                               (which could also be suppressed).
  892.                     
  893.                     13.  UNBACK
  894.                     
  895.                         This utility program allows you to restore files that have been placed
  896.                         on a diskette using the DOS BACKUP utility.  Ordinarily, RESTORE requires
  897.                         that the file BACKUPID.@@@ exist on the backup diskette, and that it be
  898.                         a perfect match for the files on the diskette.  If that special file is
  899.                         missing or invalid for some other reason, it normally is not possible to
  900.                         restore the data file.  The normal RESTORE command will not process it,
  901.                         and just COPYing the data file gives an invalid version of the file that
  902.                         was originally backed up.
  903.                           This utility will read the file placed onto the diskette by BACKUP,
  904.                         remove the control information, and copy it to another disk so it may be
  905.                         used.  UNBACK does not work just like RESTORE:  it has some limitations.
  906.                         First, UNBACK does not restore the originally backed-up file's original
  907.                         time and date.  Secondly, UNBACK does not restore files which are not
  908.                         entirely contained on one diskette.  However, it can be a lifesaver when
  909.                         you need it!
  910.                     
  911.                         snorun unback
  912.                     
  913.                         The UNBACK program will prompt you for each input file and corresponding
  914.                         output file in turn.  The prompts should be self-explanatory.  When you
  915.                         are finished, simply enter a null record (just press ENTER) in response
  916.                         to the keyin prompt.
  917.                     
  918.  
  919.                                                                                           page 25
  920.  
  921.  
  922.  
  923.                     
  924.                     14.  XTRCOMS
  925.                     
  926.                         This utility program extracts blocks of comments from assembly language
  927.                         source files.  Specifically, it looks for blocks which contain a comment
  928.                         line whose first two bytes are upper case alphabetic characters, and
  929.                         which is followed by a non-null comment line.  Such blocks are usually
  930.                         the comment blocks preceding a program subroutine.  Once triggering on
  931.                         such a comment block, the remainder of the block is written to standard
  932.                         output (the block is not considered terminated by a null comment line).
  933.                         Therefore, the typical command line would look like:
  934.                     
  935.                         snorun xtrcoms <asmfile.ASM >asmfile.CMT [/S]
  936.                     
  937.                         A typical comment block of the form that XTRCOMS looks for might look
  938.                         like:
  939.                     
  940.                         ;
  941.                         ;  MYSUB  --  Title of My Subroutine
  942.                         ;     This routine does nothing other than to demonstrate the kind of
  943.                         ;   comment blocks which the XTRCOMS programs looks for, and to give
  944.                         ;   an example of a fairly typical subroutine header.
  945.                         ;     On entry,  AX  =  whatever parameters might be in it
  946.                         ;     On exit,   AX  =  unchanged
  947.                         ;                All other registers unchanged
  948.                         ;
  949.                     
  950.                         Normally, the output of XTRCOMS would be written to a disk file (where,
  951.                         for example, it could be referenced by some kind of an on-line aid
  952.                         facility or the like).  However, one could also redirect this output to
  953.                         a printer, if one wanted to get a listing of the internal subroutine
  954.                         documentation.
  955.                           The \S option, if specified, causes the various comment blocks to be
  956.                         sorted and output in sorted sequence instead of the order in which they
  957.                         appear in the file.  They are sorted into sequence based upon the name
  958.                         of the comment block, which is defined to be the first word (in upper-
  959.                         case ASCII characters) at the beginning of the comment block.
  960.                     
  961.  
  962.                                                                                           page i
  963.  
  964.  
  965.  
  966.  
  967.  
  968.                     
  969.                                                   Table of Contents
  970.                     
  971.                     
  972.                        1.  ASMSTAT . . . . . . . . . . . . . . . . . . . . . . . . . . . .   1
  973.                     
  974.                        2.  DIFFER  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   2
  975.                     
  976.                        3.  DIRCMP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
  977.                     
  978.                        4.  DIRTREE . . . . . . . . . . . . . . . . . . . . . . . . . . . .   6
  979.                     
  980.                        5.  LINEAN1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .   8
  981.                     
  982.                        6.  LIST  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
  983.                     
  984.                        7.  MAKDUMMY  . . . . . . . . . . . . . . . . . . . . . . . . . . .  12
  985.                     
  986.                        8.  MELIZA  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13
  987.                     
  988.                        9.  MSCRIBE . . . . . . . . . . . . . . . . . . . . . . . . . . . .  14
  989.                     
  990.                        10.  OVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  17
  991.                     
  992.                        11.  REPAGIN8 . . . . . . . . . . . . . . . . . . . . . . . . . . .  17
  993.                     
  994.                        12.  SPACE  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  21
  995.                     
  996.                        13.  UNBACK . . . . . . . . . . . . . . . . . . . . . . . . . . . .  24
  997.                     
  998.                        14.  XTRCOMS  . . . . . . . . . . . . . . . . . . . . . . . . . . .  25
  999.